Method of and system for computer system denial-of-service protection

ABSTRACT

A method of and system for protecting a computer system against denial-of-service attacks or other exploitation. The method comprises collecting network data and analyzing the network data using statistical and heuristic techniques to identify the source of the exploitation upon receiving an indication of exploitation. Upon identifying the network source, the network data associated with the network is blocked, redirected, or flow controlled. Preferably, the method also includes identifying when the system is being exploited.

RELATED APPLICATIONS

This application claims priority under 35 U.S.C. § 119(e) of the co-pending, co-owned U.S. Provisional Patent Application Ser. No. 61/063,224 filed Jan. 31, 2008, and entitled “AUTONOMIC NETWORK RESPONSE TO PROCESS HIJACKING,” which is hereby incorporated by reference in its entirety.

FIELD OF THE INVENTION

The invention relates to computer software. Specifically, the invention relates to methods of and systems for providing denial-of-service protection. Protection is provided through the analysis of data including network, application, or process data to identify a network source of a detected exploitation, and processing the network data associated with exploitation to block, neutralize, and prevent a denial-of-service.

BACKGROUND OF THE INVENTION

Networked servers can provide services to other networked hosts. Some of these networked hosts attempt to exploit a server by taking advantage of security loopholes. One exploitation method uses a security hole to inject malicious code into the server memory, which executes the malicious code to exploit the server. This malicious code, also known as malware, can search the data structures of an application, a library, or an operating system component to find and utilize server system resources for the purpose of interrupting these services (such as denial-of-service attacks), to access sensitive information residing on the server, or to perform other malicious steps. Further, malware can by design or as a side effect disable a server resulting in a denial-of-service.

FIG. 1 illustrates one prior art configuration of a malicious host 110 requesting services from a trusted host 120 providing network services. The trusted host 120 is a computer server receiving service requests 112 over a network and providing services 114 such as web, mail, and file sharing. Malicious code is injected from the malicious host 110 into the trusted host 120 using a service request. The malicious host 110 requests a service 112 in which the request encapsulates malicious code. A maliciously structured service request can exploit buffer overflow techniques resulting in the malicious code 140 being loaded into memory 150 of the trusted host 120. Traditional methods of detecting malicious software include special purpose hardware 130 such as a firewall that inspects packets within a network data stream. The packet inspection tools include processing protocols such as HTTP, in which packet payloads are for the most part plain text data. Except for image data or graphics, which can be detected and identified, a firewall will inspect a packet for unexpected binary data. When packet inspection detects unexpected binary data, an indicator of potentially executable and malicious code, the firewall 130 can isolate either the host making the service request or the stream of transmitted data. The disadvantage of this solution is that additional hardware is required. Further, blindly inspecting all packets is processing intensive. Additionally, deep packet inspection techniques require the assembly of payload data streams spread across multiple network packets and result in increased data latency.

Another challenge presented by malicious code is to prevent reinfection of a server. While the objective of the malicious code is typically to exploit the server often, intentionally or unintentionally, the server's capability of providing services can be effected resulting in a denial-of-service. Further, prior art methods of detecting and neutralizing malicious code could leave a server unable to provide services and again resulting in a denial-of-service. Thus, while repetitive attempts to exploit a system might be unsuccessful, through prior art detection and neutralization means, the server is rendered unable to provide network services resulting in a denial-of-service.

SUMMARY OF THE INVENTION

In accordance with the present invention a method of and system for denial-of-service protection of a computer system comprises receiving an exploitation indication, analyzing data including network data, application data, and process data to identify a malicious source, and processing subsequently received network data identified as originating from the malicious source to prevent a denial-of-service. Preferably, the method of and system for denial-of-service protection blocks the identified source mounting a denial-of-service attack or any other identified source of malware. However, other network data processing options are contemplated including redirecting the network data from a malicious source or flow controlling network data received from the network source mounting a denial-of-service attack.

In a first aspect of the present invention, a method of denial-of-service protection for a computer system is provided. The method comprises the steps of collecting network data from an interface receiving network data from one or more sources, analyzing the network data identifying the source of the system exploitation upon receiving an indication of a system exploitation, and processing subsequently received network data to prevent a denial-of-service. In one embodiment, application information, process information, or a combination thereof collected is used in the analysis identifying the malicious source. In one embodiment, the source is client computers requesting services from the computer system or server. Once an indication of system exploitation is received, the collected data which includes network data, application data, or any combination thereof is analyzed to determine the network source that caused the denial-of-service attack. In one embodiment, network data received subsequent to the exploitation indication is also used in the analysis. The analysis includes statistical techniques, heuristic techniques, or a combination thereof to determine the source of a malicious host mounting the denial-of-service attack or the source of malware.

While denial-of-service attacks are one type of system exploitation, in some embodiments the method is used to protect against other system exploitations. The indication of system exploitation includes the detection of a virus or a rogue programs externally injected into the computer system. Once the malicious source is identified, received network data is processed to prevent or limit an exploitation by means including blocking data from the malicious source, redirecting the malicious source data to another interface or computing system to study the method of exploitation, or flow controlling the malicious source to limit the effect of the exploitation.

In accordance with another embodiment of the present invention, the network data includes, times a service connection was made, connection durations, a time a packet was received, host identifiers, a number of connections from a host, number of packets from a host, protocol identifier, port number, packet payloads, assembled packet data, or any combination thereof. Further, any other data that identifies the source of the network data can be included. Network data can include reassembling packets and inspecting the packet headers and content.

In accordance with one embodiment of the present invention, the processing of the network data from the malicious source comprises one or more of blocking, redirecting, and flow controlling the network data associated with the malicious source. Each network packet is checked for its origin. If the origin of the network data does not match an identified malicious source, then the packet is passed unimpeded to the destination requesting the data. If the packet source matches an identified malicious source, as determined from the analysis of the data, then the data packet is blocked. In one embodiment, a blocked packet is dropped and not delivered to the requesting application. In an alternative embodiment, the packet redirected for later analysis the network data from the malicious source is stored or analyzed by a different system. In another embodiment, the processing of the network data flow controls the data from the malicious source. A denial-of-service attack sends an excessive number of service requests to a server. Flow control of requests originating from a network source identified as malicious reduces the frequency of these requests and thus reduce load on the computer system providing services. In a further embodiment, the collected application information, process information, or a combination thereof is used to selectively process the network data.

In another embodiment in accordance with the present invention, the method further comprises collecting application information, process information, or both. The information collected is associated with the network data and used in the identification of processing the network data. In a further embodiment, the application information, the process information, or the combination thereof is used to selectively processing the network data.

In accordance with another embodiment of the present invention, the step of processing of the network data from the malicious source is performed as part of a Transport Data Interface (TDI) filter that is added to the execution path of a TDI networking stack. The TDI networking stack receives the network data and implements the networking protocols with the computer interface. Further, in one embodiment analyzing the network data information is executed by a Transport Data Interface (TDI) filter. The analyzing utilizes one or more of the network data information, the application information, and the process information to identify the source of the malicious code or the source of the denial-of-service attack.

In accordance with a further embodiment of the present invention, the invention includes detecting a system exploitation using a predetermined address protection, which detects malicious code loaded into writable memory which accesses data structures describing an application, a library, or an operating system component or their associated data.

In a second aspect of the present invention, a denial-of-service protection system comprises a storage component containing network data, a network interface component configured to collect network data from one or more sources and store this information in the storage component, an analysis component configured to identify a malicious source from the network data upon receiving an system exploitation indication, and a processing component configured to process network data from the malicious source to prevent a denial-of-service. In one embodiment, the system identifies the malicious source processing the network data using statistical techniques, heuristic techniques, or a combination thereof.

In accordance to one embodiment of the present invention, the network data information includes connection times, host identifiers, number of connections from a host, protocol identifier, port number, packet data, assembled packet data, or any combination thereof. In response to an exploitation indication, the processing component is configured to block, redirect, flow control, or any combination thereof of the network data from the malicious source. In one embodiment, the processing component includes in a Transport Data Interface (TDI) filter added to the execution path of the TDI networking stack. In a further embodiment, the analysis component is incorporated into the Transport Data Interface (TDI) filter. The analysis component utilizes one or more of the network data information, the application information, and the process information to identify the source of the malicious code or the source of the denial-of-service attack.

In accordance with another embodiment, the processing component of the system further comprises collecting application information, processing information, or a combination thereof, wherein the application information and the process information are associated with the network data, and used by the analysis component in the identification of the malicious source. In a further embodiment of the system, the application information, the process information, or the combination thereof is used by the processing component to selectively process the network data.

In a further embodiment, the system includes a malicious detection component configured to detect malicious code executing in writable memory when the code accesses a predetermined address. The detection generates the system exploitation indication but other exploitation detection methods are contemplated.

In another aspect to of the present invention, a computer device comprising a computer readable storage medium having computer executable instructions thereon for denial-of-service protection, the steps comprising: collecting network data, analyzing network data identifying a malicious source, and processing the network data from the identified malicious source to prevent a denial-of-service to block, redirect, or flow control the network data. In one embodiment, the computer device includes collecting network data from an interface receiving network data from one or more sources and analyzing the network data to identify a malicious source from the one or more sources upon receiving a system exploitation indication. Further the steps include processing network data, origination from the malicious source. In one embodiment, the analysis of the network data utilizes statistical and heuristic techniques.

In accordance with another embodiment of the present invention, the processor readable code is configured to analyze the network data comprising one or more of a time the connection was made, a time a packet was received, a connection duration, host identifiers, a number of connections from a host, a protocol identifier, a port number, packet data, assembled packet data, or any combination thereof. Further, any other data that identifies directly or indirectly identifies the source of the network data can be use. This can include inspecting the packet headers, and reassembling packets to inspect the content.

In accordance with another embodiment of the present invention, the processor readable code includes processing the network data from the malicious source. The processing includes blocking, redirecting, or flow controlling of the network data from the malicious source. Each network packet is checked for its source. If the source of the network data does not match the an identified malicious source, including a source implementing a denial-of-service exploitation, then the packet is passed unimpeded to the computer application or component requesting the data. If the packet source matches the source identified as malicious by the analysis of the network data, then the data packet is blocked. A blocked packet is dropped and not delivered to the destination specified within the packet. Alternatively, the packet can be redirected for later analysis. The data from the malicious source can be stored or analyzed by a different machine or processor. Another approach to processing network data is to flow control data from the malicious source.

In a further embodiment, the computer device also collects application information, process information, or both. The application information and the process information are associated with the network data, and used by the computer device to selectively process network data. In a further embodiment, the computer device the application information, the process information, or both is used in selecting the network data to process.

In accordance with one embodiment of the present invention, the processor readable code, configured to process the network data from a malicious source, is part of a Transport Data Interface (TDI) filter. The processor readable code is added to the executions path of a TDI networking stack. The TDI networking stack receives the network data and implements the networking protocols associated with the computer interface. In a further embodiment, the processor readable code, includes a Transport Data Interface (TDI) filter configured to analyze one or more of the network data information, application information, and process information to identify the malicious source or the source of the denial-of-service attack.

In accordance with a further embodiment of the present invention, the processor readable code includes the detection of a system exploitation. In one embodiment, the system exploitation includes malicious code injected into writeable memory of the computer system and accesses a predetermined address.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention is better understood by reading the following detailed description of exemplary embodiments in conjunction with the accompanying drawings.

FIG. 1 illustrates a prior art configuration of a malicious host mounting a denial-of-service attack or other exploitation on a host server.

FIG. 2 illustrates a computer system configured with processing components configured to detect a denial-of-service attack or malware resulting in denial-of-service, identifying the source, and protecting against a further denial-of-services in accordance with one embodiment of the present invention.

FIG. 3 illustrates the processing steps for the denial-of-service protection in accordance with one embodiment of the present invention.

FIG. 4 illustrates a block diagram of an exemplary computing device configured to protect a computer system against a denial-of-service attack or malware in accordance with one embodiment of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

The following description of the invention is provided as an enabling teaching of the invention. Those skilled in the relevant art will recognize that many changes can be made to the embodiment described, while still obtaining the beneficial results of the present invention. It will also be apparent that some of the desired benefits of the present invention can be obtained by selecting some of the features of the present invention without utilizing other features. Accordingly, those who work in the art will recognize that many modifications and adaptations to the present invention are possible and can even be desirable in certain circumstances, and are a part of the present invention.

In accordance with the invention, system exploitations resulting in a denial-of-service are blocked or limited. These exploitations can include networked sources of malware or network sources directly mounting a denial-of-service attack. One form of a denial-of-service attack is for a networked host to make excessive requests for services that result in overloading a server. Alternatively, a malicious client makes service requests that injects malicious code or malware into server memory. This malware can intentionally or unintentionally interfere with the server's operation resulting in a denial-of-service. Further, prior art methods of blocking or neutralizing malicious code might leave a server unable to provide services, resulting in a denial of services.

In one embodiment, processing of the network data prevents a denial-of-service by blocking or neutralizing malware that is issuing excessive service requests that would overload the server. Blocking data from a source identified as launching a denial-of-service attack or other type of exploitation, prevents further attempts which may overload the server. Blocking a network source identified as injecting malware that interferes or disables server services also prevents denial-of-service. For denial-of-service attacks, flow controlling the network data from an identified malicious host is an effective technique for mitigating the effect of a denial-of-service attack. An additional approach to prevent a denial-of-service is to redirect to another processing system to analyze the associated network data from the source identified as overloading the server or the network source of malware. This technique is also effective in gathering information regarding the structure and from of a denial-of-service or other malware exploitation.

FIG. 2 illustrates one embodiment of a computer processing system or server 200 executing the steps for determining and processing network data 265 to block or limit a denial-of-service attack or other exploitation from a malicious client 260. The computer processing system 200 can provide services over a network 265 to one or more client machines 260. The computer processing system 200 comprises a computer system 210 having user memory 220 and kernel memory 230. A TDI client (application) 225 executes from user memory 220 and connects with the driver stack 240. The application 225 typically provides network services such as email or serving web pages or can be a user connecting to the networked client computer 260. Within the kernel memory 230 a network stack 240 is shown in communication with the TDI Client 225 and the networked client computer 260. The network stack 240 implements different protocols including but not limited to TCP/IP. One example of a network stack 240 is a collection of TDI (Transport Data Interface) drivers for a Windows Serves operating system. The network driver 240 comprises the networking protocol stack 244 and a TDI filter component 242. The TDI filter component 242 is added to the network stack 240 at system boot time or later by an application. The TDI filter 242 is supplemental to the operation of the network driver stack 240. The operating system provides the capability of coupling additional processing functions into the execution path of the TDI driver stack 240 through the TDI filter 242. The TDI filter 242 provides the capability to customize the processing of network data. In one embodiment, the processing includes logging information and statistics regarding the network data transmitted between the computer server system 210 and the client computer 260.

In an exemplary embodiment, the TDI filter 242 is configured to monitor and collect the network data 265 received from network sources including a malicious client 260 launching a denial-of-service attack or being the source of other malware. The monitoring includes network level packet monitoring or monitoring at the connection level. Packet data can include time-based statistics, the number of packets or bytes received from a network address or source, or the monitoring of packet data. Host-based information can include the time a host connection is made, number of connections make within a time period, the host name, the host address, or any other parameters that identifies the TDI client 225, and the protocols being used, the client computer 260 name, or client computer 260 address.

Further, the collection of information, before or subsequent to receiving an exploitation indiction, can include information related to applications or processes related to network data being received. This data can include process identifiers, applications names, time the process or application started, CPU time used, or any combination thereof. The collection of process and application data is executed by the TDI filter 242, the analysis program 250 or another application, or process (not shown).

Additionally, in one configuration, the TDI filter 242 selectively processes network data identified as originating from a malicious source and based on an application of process identification information such as the TDI client 225 application identifier or process identifier. The processing can include blocking, redirecting, or flow controlling the network data. Each technique is useful in countering a denial-of-service attack or other malware exploitation.

A denial-of-service can be caused by a malicious host making excessive requests for services that overloads a computer system, by the infection of a computer with malicious code that either intentionally or unintentionally disables server services, or by the detection, disabling or neutralizing of the malicious code, which results in the disabling of server services an thereby results in a denial-of-services. A malicious client 260 can reinfect a server even after the infection is detected and neutralized or the server rebooted. Blocking a host identified as the source launching a denial-of-service attack has the benefit of preventing reinfection of the server and the resulting denial-of-service. Flow controlling the network data from a network source identified as overloading the system is an effective way of minimizing the effect of a denial-of-service attack. This approach is useful where a source of requests might not be mounting a denial-of-service attack or other exploitation, but the behavior of the source is suspicious. Flow controlling the requests reduces the level of service provided to the source but does not completely exclude the source from obtaining services. In accordance with another embodiment, the associated network data is from a network source originating malicious code or a denial-of-service attack is redirected to storage or to another system for analysis. This technique is used to gather data on a denial-of-service attack or information about malware or other exploitations.

Alternatively, the processing of the network data is executed outside the TDI filter 242 or TDI Driver Stack 240. In an alternative embodiment, the processing is performed by another program such as a firewall (not shown). The configuration of the firewall, to block or otherwise process the data can be by either the analysis component 250 or by the TDI filter 242 when configured to analyzed the network data information to identify the malicious source.

The collected network data is stored in either kernel memory 232, user memory 257, on a non-volatile storage device 270, or any combination thereof. The kernel memory 232 and user memory 257 are part of an analysis program 250 for identifying malicious sources. The collected network data is processed by the analysis component 250 when an indication of a system exploitation 255 is received. The analysis component can execute out of user memory 220, kernel memory 230, or a combination of both. The denial-of-service or system exploitation can include all forms of malicious code, often referred to as malware including computer viruses, worms, trojan horses, rootkits, spyware, dishonest adware, criminalware, or a host overloading a server with a flood of services requests. The analysis component 250 processes the network data using statistical and heuristic algorithms. Further, the analysis component can use the collected application information, process information, or both in the determination of the malicious source.

Alternatively, the analysis of one or more of the collected network data information, the application information, and the process information is executed by the TDI filter 242 to determined the malicious source or the source of a denial-of-service attack. The detected malicious source can be used to configure the TDI filter 242 in the processing of data from the malicious source or the source of a denial-of-service attack.

In the shown embodiment, the system includes a detection component 280 that reports or indicates a system exploitation. The detected component 280 provides a system exploitation indication 255 to the analysis component 250, which will subsequently determine the malicious source. Further, the detection component 280 can include the detection of malicious code executing out of writable memory using predetermined address protection as described in the co-pending and co-owned U.S. Patent Application Serial No. (SCOR-01801), filed Jan. 30, 2009, entitled “METHOD OF AND SYSTEM FOR MALICIOUS SOFTWARE DETECTION USING CRITICAL ADDRESS SPACE PROTECTION,” which is herein incorporated by reference in its entirety. Other applications describing malware protection and identification techniques include co-owned and copending U.S. patent application Ser. No. 10/651,588, filed Aug. 29, 2003 and entitled “DAMAGE CONTAINMENT BY TRANSLATION,” which is herein incorporated by reference in its entirety; and U.S. patent application Ser. No. 11/122,872, filed May 4, 2005 and entitled “PIRACY PREVENTION USING UNIQUE MODULE TRANSLATION,” which is herein incorporated by reference in its entirety. The system detection component 280 can execute out of user memory 220, kernel memory 230, or a combination of both.

FIG. 3 illustrates one embodiment of the present invention for method of preventing denial-of-service protection in accordance with one embodiment of the present invention. The method begins at a step start 301. The step 301 can include initialization of variables, software states, and hardware. Further, the step 301 can include operating system configuration including adding driver components to a networking stack. Adding a TDI filter to a TDI driver stack is one example of such configuration.

In an optional step 310, an exploitation of the system is detected. In one embodiment, the step 310 includes the detection of excessive service requests over the network from a malicious client implementing a denial-of-service attack or other malware exploitation. The detection includes a virus loaded into the computer system, or malicious code injected into and executed out of writable memory and accessing a predetermined address. Details of the detection of code executing out of writable memory can be found in the U.S. Patent Application Serial No. (SCOR-01801), filed Jan. 29, 2009, entitled “METHOD OF AND SYSTEM FOR MALICIOUS SOFTWARE DETECTION USING CRITICAL ADDRESS SPACE PROTECTION,” which is incorporated by reference in its entirety. Other applications describing malware protection and identification techniques include the above mentioned co-owned and copending U.S. patent application Ser. No. 10/651,588, filed Aug. 29, 2003 and U.S. patent application Ser. No. 11/122,872, filed May 4, 2005. Upon detecting a system exploitation, a system exploitation indication is generated. The system exploitation indication invokes the step 320 of analyzing the network data, application data, and process data to identify a malicious source.

In the step 320 the data is analyzed to identify a malicious source. In one embodiment, the identification of the malicious source utilizes network data that includes a time the connection was made, a connection duration, a time that a packet was received, a host identifiers, a number of connections from a host, a number of packets from a host, a protocol identifier, port number, packet data, and assembled packet data. In a further embodiment, the analysis utilizes application data, process data, or a combination thereof. Further, in another embodiment the analysis uses statistical techniques, heuristics techniques, or a combination thereof in the identification of the malicious source. Once the malicious source is identified, the process continues to the step 330 in which malicious source information is received an processed.

Exemplary heuristics and statistical techniques used to identify a malicious host include but are not limited to, choosing all connected hosts, the last host to connect, the last host to send data, the last host to receive data, the last host to send and receive data within a time window, the last connected host to send data, the last connected host to receive data, the connected host that has sent the most data, the connected host that has received the most data, and the connected host that has received and sent the most data. The above mentioned techniques can incorporate additional parameters such as all hosts connected to a specific port.

Further, the techniques can include using collected information about the applications, processes, or combination thereof as part of the input to the heuristic and statistical techniques for identifying the malicious host. For example, the collected network data could include choosing all connected hosts to a specific application or process, the last host to connect to a specific application or process, the last host to send data to a specific application or process, the last host to receive data from a specific application or process, the last host to send and receive data within a time window to a specific application or process, the last connected host to send data to a specific application or process, the last connected host to receive data to a specific application or process, the connected host that has sent the most data to a specific application or process, the connected host that has received the most data from a specific application or process, and the connected host that has received and sent the most data to a specific application or process.

Statistical techniques for identifying a malicious host include but are not limited to statistical deviation of the number of connections or packets from a host that exceeds a threshold, an amount of data sent by a host within a time interval, or an amount of data received by a host within a time interval. In one embodiment, the statistics are calculated over a time period that includes multiple system re-boots or system exploitations. Further, in another embodiment a running average of the above statistics can be used to adapt to time varying statistical variations.

In the step 330, received network data identify as originating from the malicious source is further processed. If a originating source is not identified as malicious, then network data is passed to the destination unimpeded. The data identified as originating from a malicious source is processed to prevent or diminish a denial-of-service attack or other malware exploitation that can result in a denial of service. In one embodiment, the processing includes blocking the network data and/or connection from the identified malicious source. In another embodiment, the processing includes modifying packets or data streams from the malicious source. Another method of processing data includes redirecting data to another processing system or storage device for later analysis. In a further embodiment, the processing of network data includes flow controlling the data by means including delaying the delivery of the data. The process can further be limited to data packets or streams associated with an application or process or using attributes associated with an application or attribute. The processing ends in the step 399.

Network data is processed by a software component hooked or linked into a network stack. In an embodiment that uses Windows Server®, the network stack is called a Transport Data Interface (TDI) driver stack 240. A TDI filter 242 is coupled into the execution path for the TDI driver 240. The TDI filter 242 collects network data, network information, and statistics on received network data. Additionally, the TDI filter 242 processes the network data packets and data streams received from the network interface for blocking, redirecting, or flow controlling the identified malicious network data. Further, some embodiments, the TDI filter 242 is configured to analyze the collected network data, network information and statistics to determine the source of the malicious host or the source of the denial-of-service attack. The identified malicious source is used to configure the blocking, or flow controlling the network data. In other embodiments, the TDI filter configures an external component, such as a firewall, to block the detected malicious source or source of the denial-of-service attack.

FIG. 4 illustrates a block diagram of a computing device 400 configured to implement a computer automated method of providing denial-of-service protections in accordance with one embodiment of the present invention. The computing device 400 is a server providing network services to a client or host computer that mounts denial-of-service attacks or is the source of other malware. Alternatively, the computing device 400 is another type of system with different capabilities. In one embodiment, the computing device 400 receives service requests that include file sharing services, web server services, and e-mail services. The computing device 400 includes a storage system 412 for program and data storage. The data storage can include web pages, files, and e-mails. The storage of the denial-of-service protection code can be stored on separate devices or on the same device as the computing device 400. For example, the code for the denial-of-service or other exploitation protection can be stored on a tape, a local hard drive, CD-ROM, a DVD, or solid state memory. Further, in one embodiment the computing device 400 communicates with other computational systems including a human interface such as a graphical user interface. The communication is through a network, a direct communication link, or through an operating system communication channel such as a socket. In general, a hardware structure suitable for implementing the computing device 400 can include a network interface 402, a memory 404, a memory management unit (MMU) 420, a processor 406, I/O device(s) 408, a bus 410 and the storage device 412. The processor 406 can be almost any type, so long as it has sufficient speed. The memory 404 can be any conventional computer memory known in the art.

The storage device 412 can include a hard drive, tape, CDROM, CDRW, DVD, DVDRW, flash memory card or any other storage device. An example of the network interface 402 includes a network card coupled to an Ethernet or other type of LAN. The I/O device(s) 408 can include one or more of the following: keyboard, mouse, monitor, display, printer, modem, touchscreen, button interface and other devices including remote systems. The code for the denial-of-service protection (DOSP) 440 can be configured into the OS (operating system) 430 and is part of the OS 430 initialization. The analysis code 450 for the analyzing the network data and identifying the malicious host or client are a component separate from the OS 430. Additionally, in one embodiment code 460 for the detection of a system exploitation is found on the storage. More or fewer components shown in FIG. 4 can be included in the computing device 400. Additional processors, either distributed or not distributed, and additional storage can be incorporated.

Reference has been made in detail to the preferred and alternative embodiments of the invention, examples of which are illustrated in the accompanying drawings. It will be readily apparent to one skilled in the art that other modifications may be made to the embodiment without departing from the spirit and scope of the invention as defined by the appended claims. On the contrary, the invention is intended to cover alternatives, modifications and equivalents, which can be included within the spirit and scope of the invention. Furthermore, in the detailed description of the present invention, numerous specific details have been set forth in order to provide a thorough understanding of the present invention. However, it should be noted that the present invention can be practiced without these specific details. In other instances, well known methods, procedures and components have not been described in detail so as not to unnecessarily obscure aspects of the present invention. 

1. A method of denial-of-service protection for a computer system comprises: collecting network data information from an interface receiving network data from one or more sources; collecting application data describing attributes of one or more software applications utilized by the computer system; identifying a subset of the network data as associated with the application data, the subset of network data including less than all of the collected network data; analyzing the subset of the network data information to identify a malicious source from the one or more sources upon receiving a system exploitation indication; and processing network data originating from the malicious source to prevent denial-of-service, wherein processing the network data includes redirecting network traffic associated with the malicious source to another system, wherein at least a portion of the redirected traffic is analysed at the other system.
 2. The method of claim 1, wherein the analysis the subset of the network data comprises statistical techniques, heuristic techniques, or a combination thereof.
 3. The method of claim 2, wherein the network data comprises one or more of, a time the connection was made, a connection duration, a time that a packet was received, a host identifiers, a number of connections from a host, a number of packets from a host, a protocol identifier, port number, packet data, and assembled packet data.
 4. The method of claim 2, wherein the processing the network data from the malicious source comprises one or more of blocking, redirecting, and flow controlling of the malicious data.
 5. The method of claim 4, further comprising collecting process information, wherein the process information is associated with the network data, and used in the identification of the subset of the network data.
 6. (canceled)
 7. The method of claim 1, wherein the network data originating from the malicious source is processed using a Transport Data Interface (TDI) filter added to the executions path of a TDI networking stack coupled to the computer interface.
 8. The method of claim 1, wherein the subset of the network data information is analyzed using a Transport Data Interface (TDI) filter.
 9. The method of claim 1, further comprising detecting malicious code using a predetermined address protection and generating a system exploitation indication in response to the detection of code executing out of writable memory space on the computer system.
 10. A system for denial-of-service protection comprising: a storage component containing network data information; a network interface component configured to collect network data information from one or more sources; an analysis component configured to collect application data describing attributes of one or more software applications utilized by the computer system, identify a subset of the network data information associated with the application data, the subset of network data information including less than all of the collected network data information, and analyze the subset of the network data to identify a malicious source from the network data information upon receiving a system exploitation indication; and a processing component configured to process network data from the malicious source, wherein processing the network data includes redirecting network traffic associated with the malicious source to another system, wherein at least a portion of the redirected traffic is analysed at the other system.
 11. The system of claim 10, wherein the analysis component is configured to identify the malicious source using statistical techniques, heuristic techniques, or a combination thereof.
 12. The system of claim 11, wherein the network data information comprises one or more of, connection times, packet receipt times, host identifiers, a number of connections from a host, number of packets from a host, protocol identifiers, port numbers, packet data, and assembled packet data.
 13. The system of claim 11, wherein the processing component is configured to block, redirect, flow control the network data from the malicious source, or any combination thereof.
 14. The system of claim 13, wherein the processing component further comprises collecting is further configured to collect at least one of the application information, process information, or a combination thereof, wherein the application information and the process information are associated with the network data, and used by the analysis component in the identification of the malicious source.
 15. The system of claim 14, wherein the application information, the process information, or the combination thereof is used by the processing component to selectively process the network data.
 16. The system of claim 12, wherein the processing component is included in a Transport Data Interface (TDI) filter added to the execution path of a TDI networking stack.
 17. The system of claim 12, wherein the analysis of the network data information is executed by a Transport Data Interface (TDI) filter.
 18. The system of claim 11, further comprising a malicious code detection component configured to detect malicious code using a predetermined address protection.
 19. A computer device comprising a non-transitory, computer-readable storage medium having computer executable instruction thereon for denial-of-service protection by performing the steps: collecting network data information from an interface receiving network data from one or more sources; collecting application data describing attributes of one or more software applications utilized by the computer system; identifying a subset of the network data as associated with the application data, the subset of network data including less than all of the collected network data; analyzing the subset of the network data information to identify a malicious source from the one or more sources upon receiving a system exploitation indication; and processing the network data originating from the malicious source, wherein processing the network data includes redirecting network traffic associated with the malicious source to another system, wherein at least a portion of the redirected traffic is analysed at the other system.
 20. The computer device of claim 19, wherein the processor readable code for processing network data information comprises statistical techniques, heuristic techniques, or a combination thereof.
 21. The computer device of claim 20, wherein the network data information comprises times a connection was made, connections duration, a time that a packet was received, host identifiers, a number of connections from a host, a number of packets from a host, protocol identifiers, port numbers, packet data, assembled packet data, or any combination thereof.
 22. The computer device of claim 20, wherein the processing the network data comprises one or more of blocking, redirecting, or flow control of the network data from the malicious source.
 23. The computer device of claim 22, further comprising collecting process information, wherein the process information is associated with the network data, and used in the identification of the subset of the network data.
 24. The computer device of claim 23, wherein the application information, the process information, or the combination thereof is used to selectively processing the network data.
 25. The computer device of claim 21, wherein the processing the network data from the malicious source is performed by a Transport Data Interface (TDI) filter.
 26. The computer device of claim 21, wherein the analysis of the subset of the network data information is executed by a Transport Data Interface (TDI) filter.
 27. The computer device of claim 20, further comprising the step of detecting malicious code using a predetermined address protection, wherein the detection of code executing out of writable memory space generates the system exploitation indication. 